package json;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import utils.StringUtils;

public class JSONObjectWrapper
{
	private JSONObject m_object;

	public JSONObjectWrapper(String sLine) throws ParseException
	{
		parse(sLine);
	}

	public JSONObjectWrapper(JSONObject object)
	{
		m_object = object;
	}

	public void parse(String sLine) throws ParseException
	{
		JSONParser m_parser = new JSONParser();
		m_object = (JSONObject) m_parser.parse(sLine);
	}

	public String getStringValue(String sField)
	{
		if (StringUtils.isEmpty(sField))
		{
			return null;
		}

		Object value = m_object.get(sField);
		if (value instanceof String)
		{
			return (String) value;
		}

		return String.valueOf(m_object.get(sField));
	}

	public JSONObjectWrapper getJsonValue(String sField)
	{
		if (StringUtils.isEmpty(sField))
		{
			return null;
		}

		return new JSONObjectWrapper((JSONObject) m_object.get(sField));
	}

	public JSONArray getJsonArray(String sField)
	{
		if (StringUtils.isEmpty(sField))
		{
			return null;
		}

		return (JSONArray) (m_object.get(sField));
	}

	public void putValue(String sValueName, Object oValue)
	{
		m_object.put(sValueName, oValue);
	}

}
